package com.coursehub.user.service;

import com.coursehub.user.dto.UserLoginDto;
import com.coursehub.user.dto.UserRegisterDto;
import com.coursehub.user.dto.UserUpdateDto;
import com.coursehub.user.entity.User;

import java.util.List;

/**
 * 用户服务接口
 */
public interface UserService {
    
    /**
     * 用户注册
     */
    User registerUser(UserRegisterDto registerDto);
    
    /**
     * 用户登录
     */
    User login(UserLoginDto loginDto);
    
    /**
     * 用户登录（兼容原有接口）
     */
    User login(String account, String password);
    
    /**
     * 用户注销
     */
    void logout();
    
    /**
     * 更新用户信息
     */
    User updateUser(String userId, User user, String password);
    
    /**
     * 更新用户信息（使用DTO）
     */
    User updateUserInfo(String userId, UserUpdateDto updateDto);
    
    /**
     * 删除用户
     */
    void deleteUser(String userId);
    
    /**
     * 根据ID获取用户
     */
    User getUserById(String userId);
    
    /**
     * 检查用户密码
     */
    boolean checkUserPassword(String userId, String password);
    
    /**
     * 获取所有用户
     */
    List<User> getAllUsers();
    
    /**
     * 检查用户是否存在
     */
    boolean userExists(String userId);
    
    /**
     * 根据账号检查用户是否存在
     */
    boolean userExistsByAccount(String userAccount);
}